﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

namespace ProjectBase.Core.Diagnostics
{
    [ContractClassFor(typeof(IWriteDao<,>))]
    internal abstract class WriteDao<T, TID> : IWriteDao<T, TID>
        where T : class, IPersistentObjectWithTypedId<TID>
    {
        public T Add(T entity)
        {
            Contract.Requires(entity.Is(), "WriteFacade<T, TID> , method Add(), parameter 'entity' cannot be null");
            throw new NotImplementedException();
        }
        public T Update(T entity)
        {
            Contract.Requires(entity.Is(), "WriteFacade<T, TID> , method Update(), parameter 'entity' cannot be null");
            throw new NotImplementedException();
        }
        public void Delete(T entity)
        {
            Contract.Requires(entity.Is(), "WriteFacade<T, TID> , method Delete(), parameter 'entity' cannot be null");
            throw new NotImplementedException();
        }
    }
}